home *** CD-ROM | disk | FTP | other *** search
- //******************************************************************
- //
- // hello.hcd
- //
- // class definitions for the Hello ObjectServer App
- //
- // D. Bartels
- //
- // classes
- // Address
- // Person
- // Programmer
- //
- //******************************************************************
-
- #ifndef BKS_HXX
- #include <bks.hxx>
- #endif
- #ifndef PTSTRING_HXX
- #include <ptstring.hxx>
- #endif
- #ifndef PTCONST_HXX
- #include <ptconst.hxx>
- #endif
- #ifndef PTBLOB_HXX
- #include <ptblob.hxx>
- #endif
-
- #if defined ( _Windows )
- #ifndef __WINDOWS
- #define __WINDOWS
- #endif
- #endif
-
- #define PERSON_NAME_INDEXED
- //#define EXP_YEARS_INDEXED
- //#define PROGRAMMER_NAME_INDEXED
-
- //-------------------------------------------------------------------
-
- persistent class Address
- {
- private:
- PtString street;
- short zip;
- PtString city;
-
- public:
- Address () {;}
-
- Address& operator = ( Address & adr )
- {
- street = adr.street;
- zip = adr.zip;
- city = adr.city;
- return *this;
- }
-
- char *GetStreet () { return (char *) street; }
- int GetZip () { return zip; }
- char *GetCity () { return (char *) city; }
-
- #ifndef __WINDOWS
- void Input ();
- void Print ();
- #else
- char * Print( char *buffer );
- #endif // __WINDOWS
-
- void SetAddress( char *s, int z, char *c )
- {
- street = s;
- zip = z;
- city = c;
- }
- };
-
- //-------------------------------------------------------------------
-
- persistent class Picture
- {
- public:
- PtBlob picture;
-
- public:
- PtBlob *GetPicture() { return &picture; }
- void SetPicture(PtBlob& blob) { picture = blob; }
- };
-
- //-------------------------------------------------------------------
-
- class PtOnDemand;
-
- persistent class Person
- {
- public:
- PtString name;
- ondemand<Picture> pict;
- cset<PtString> firstnames;
- cset<Address*> adrs;
-
- public:
- Person() {;}
- virtual ~Person();
-
- char *GetName () { return (char *) name; }
- void SetName( char *s ) { name = s; }
- int EmptyAddresses () { return adrs.Clear (); }
-
- #ifndef __WINDOWS
- virtual void Input ();
- virtual void FileInput (void *filepointer);
- virtual void Print ();
- virtual int Notify( PtOnDemand* Object, PtOnDemand* RootObject,
- PtWatchMode action );
- #else
- virtual void Init ();
- virtual char * Print (char *buffer);
- #endif // __WINDOWS
-
- useindex PersonNameIndex;
- };
-
- //-------------------------------------------------------------------
-
- persistent class Programmer : public Person
- {
- public:
- short exp_years; // Years of experience
- PtString language; // Programming language of choice
-
- public:
- Programmer () { exp_years = 0; }
- virtual ~Programmer();
-
- int GetExp () { return exp_years; }
- void SetExp( int e ) { exp_years = e; }
- char *GetLang () { return (char *) language; }
- void SetLang( char *l ) { language = l; }
-
- #ifndef __WINDOWS
- virtual void Input ();
- virtual void Print ();
- #else
- virtual void Init ();
- virtual char * Print ( char *buffer );
- #endif // __WINDOWS
-
-
- #ifdef EXP_YEARS_INDEXED
- useindex ProgrammerExp_yearsIndex;
- #endif
- #ifdef PROGRAMMER_NAME_INDEXED
- useindex PersonNameIndex;
- #endif
- };
-
- //-------------------------------------------------------------------
-
- indexdef PersonNameIndex : Person
- {
- name[[10]];
- };
-
- //-------------------------------------------------------------------
-
- #ifdef EXP_YEARS_INDEXED
- indexdef ProgrammerExp_yearsIndex : Programmer
- {
- exp_years;
- };
- #endif
-
- //-------------------------------------------------------------------
-
-
- typedef lset<ondemand<Person>> PersonResult;
- typedef lset<ondemand<Programmer>> ProgrammerResult;
- typedef lset<ondemand<Address>> AddressResult;
-
-
-
-
-
-
-
-
-